운영 환경에 접근하는 사용자의 리소스 접근 제어를 체계적으로 관리할 수 있는 서비스입니다.
먼저 필요한 역할을 정의해야 합니다. 역할은 다른 역할을 연관 역할로 지정할 수 있고, 해당 연관 역할에 지정된 다른 연관 역할과 조건 속성을 상속받을 수 있습니다. 이를 통해 체계적인 역할 구조를 설계할 수 있습니다. 특정한 기능을 수행할 수 있는 역할들을 정의하고, 이런 역할을 묶어서 특정 직무를 수행할 수 있는 역할에 연관 관계로 구성할 수 있습니다. 사용자에게 작은 범위의 기능을 수행할 수 있는 역할을 할당할 수도 있고, 더 많은 기능을 할 수 있는 역할을 할당할 수 있습니다.
인가 정책을 설계할 때 역할만으로는 부족할 수 있습니다. 조건 속성을 기반으로 역할을 정의해서 세밀한 정책을 구성할 수 있습니다.
조건 속성은 ID-값
형식으로 구성할 수 있고, 사용자
또는 역할
에 부여할 수 있습니다. 조건 속성에 부여된 값과 일치하거나 일치하지 않는 경우에 접근을 허용하도록 구성할 수 있습니다.
예. bucket-name 속성 ID
를 정의합니다. 이 속성은 각각의 접근 대상이 가지는 버킷 이름을 정의합니다. 사용자에게 동일한 조건 속성 ID와 허용할 속성값을 부여합니다.
예를 들어 bucket-name 속성 ID
에 product
라는 이름의 속성값을 사용자에게 부여한다면, 사용자가 대상에 접근할 때 product
와 일치하는 속성값을 가지는 대상인 경우에만 접근이 허용됩니다.
위의 예시와 같이 특정 속성 ID를 가지는 보호 자원에 접근
할 때, 사용자에게 부여한 속성값이 접근하려는 대상의 조건 속성과 일치하는 경우만 자원에 접근을 허용하도록 구성할 수 있습니다.
리소스는 보호 자원을 정의하는 단위입니다. URI 기반 hierarchy 구조로 구성할 수 있으며, 각 리소스에는 리소스 식별 정보와 리소스에 접근할 수 있는 권한(역할-오퍼레이션 쌍)
목록을 지정할 수 있습니다.
리소스 기반으로 인가에 대한 정책을 수립하는 경우에 유용합니다.
단, 역할 기반으로 접근 제어 정책을 수립하는 경우 리소스 정의는 필요하지 않습니다.
예. 게시판의 게시글
을 리소스로 정의하여 수정
과 삭제
는 관리자 역할
만 허용하고, 게스트 역할
은 보기만 허용
하도록 구성할 수 있습니다. 또한 관리자
역할에 게스트
의 역할을 연관 역할로 지정하면 보기
오퍼레이션을 수행할 수 있으므로 중복 적용하지 않고 효율적으로 관리할 수 있습니다.
사용자의 접근 권한은 사용자에게 부여된 역할과 그 역할의 연관 역할로 검사합니다. 사용자에게 역할을 부여할 때, 해당 역할의 유효 범위를 함께 지정할 수 있습니다. 범위는 운영 환경에서 역할 및 조건 속성, 리소스 체계가 동일한 여러 조직이나 대상이 있을 때 유용합니다.
인가는 역할 기반과 리소스 기반으로 제공됩니다. 역할 기반은 사용자가 지정한 역할에 대한 접근을 허용하는지 검사하며, 사용자나 역할에 부여된 속성이 있으면 속성에 대해서도 함께 검사합니다. 리소스 기반은 사용자가 지정한 리소스 및 오퍼레이션에 대한 접근을 허용하는지 검사합니다. 마찬가지로, 리소스에 접근 가능한 역할에 속성이 부여되어 있다면 속성에 대해서도 함께 검사합니다.
용어 | 설명 |
---|---|
사용자 | 역할을 가지는 주체 |
역할 | 리소스 접근 제어를 위한 최소 단위 |
범위 | 역할이 가질 수 있는 유효 범위 |
오퍼레이션 | 사용자가 리소스에 행할 수 있는 행위 |
리소스 | 역할이 접근할 수 있는 모든 대상 |
조건 속성 | 역할에 추가할 수 있는 조건 속성 |